package gang.org.springframework.framework.factory;

import gang.org.springframework.framework.bean.GangBeanDefinition;

/**
 * @author gang.chen
 * @since  2021/6/11 12:54
 */
public interface GangConfigurableListableBeanFactory extends GangListableBeanFactory,GangConfigurableBeanFactory, GangBeanFactory {

    /**
     * 以bean名称为参数，获取BeanDefinition
     * @param beanName Bean的名称
     * @return 返回BeanDefinition
     * */
    GangBeanDefinition getBeanDefinition(String beanName);

    /**
     * 确保所有non-lazy-init 单例可以实例化
     * */
    void preInstantiatedSingletons();

    void registerResolvaleDependency(Class<?> dependencyType, Object autowiredValue);
}
